package com.example.mybatisplusdemo.model.domain;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 
 * </p>
 *
 * @author yzy
 * @since 2025-07-07
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("flight")
@ApiModel(value="Flight对象", description="")
public class Flight implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @TableField("flight_number")
    private String flightNumber;

    @TableField("departure_airport_code")
    private String departureAirportCode;

    @TableField("arrival_airport_code")
    private String arrivalAirportCode;

    @TableField("departure_time")
    private LocalDateTime departureTime;

    @TableField("arrival_time")
    private LocalDateTime arrivalTime;

    @TableField("airline_code")
    private String airlineCode;

        @ApiModelProperty(value = "飞行时长（分钟）")
    @TableField("duration")
    private Integer duration;

    @TableField("price")
    private BigDecimal price;

        @ApiModelProperty(value = "中转城市（JSON数组）")
    @TableField("transfer_cities")
    private String transferCities;

    @TableField("service_class")
    private String serviceClass;

    @TableField("wifi_available")
    private Boolean wifiAvailable;

    @TableField("power_usb")
    private Boolean powerUsb;

        @ApiModelProperty(value = "餐食选项（JSON数组）")
    @TableField("meals")
    private String meals;

        @ApiModelProperty(value = "免费托运行李额度（kg）")
    @TableField("free_checked_baggage")
    private Integer freeCheckedBaggage;

        @ApiModelProperty(value = "免费手提行李额度（件）")
    @TableField("free_carry_on")
    private Integer freeCarryOn;

        @ApiModelProperty(value = "超重行李费用（每公斤）")
    @TableField("overweight_fee_per_kg")
    private BigDecimal overweightFeePerKg;

        @ApiModelProperty(value = "准点率（0.00-1.00）")
    @TableField("punctuality_rate")
    private BigDecimal punctualityRate;

        @ApiModelProperty(value = "碳排放量（kg）")
    @TableField("carbon_emission")
    private BigDecimal carbonEmission;

        @ApiModelProperty(value = "座位舒适度评分（0-5）")
    @TableField("seat_comfort")
    private BigDecimal seatComfort;

        @ApiModelProperty(value = "用户评分（0-5）")
    @TableField("user_rating")
    private BigDecimal userRating;

    @TableField("create_time")
    private LocalDateTime createTime;

    @TableField("update_time")
    private LocalDateTime updateTime;

    @TableField("is_deleted")
    private Boolean deleted;

    @TableField("version")
    private Integer version;


}
